home *** CD-ROM | disk | FTP | other *** search
/ MacFormat España 16 / macformat_16.iso / Recursos / GraphicConverter 2.3.1 / Plug-ins Dev.-Kit / SampleExport.p < prev    next >
Text File  |  1994-12-12  |  2KB  |  71 lines

  1. unit SampleExport;
  2.  
  3. interface
  4.  
  5.     uses
  6.         Header;
  7.  
  8.     procedure Main (ExportPtr: T_ExportPtr);
  9.  
  10. implementation
  11.  
  12.     const
  13.         C_Creator = 'GKON'; { GraphicConverter }
  14.         C_Type = 'SamI';
  15.         C_ID = $98765432;
  16.  
  17.     procedure Main (ExportPtr: T_ExportPtr);
  18.  
  19.         var
  20.             err, dummy: OSErr;
  21.             refNum: Integer;
  22.             bytes, temp: Longint;
  23.  
  24.     begin
  25.     err := FSpDelete(ExportPtr^.destFSSpecRec); { delete old one }
  26.  
  27. { Create the file specified with FSSpecRec; alway data and resource fork ! }
  28.     err := FSpCreate(ExportPtr^.destFSSpecRec, C_Creator, C_Type, 0);
  29.     if err = noErr then
  30.         begin
  31.         FSpCreateResFile(ExportPtr^.destFSSpecRec, C_Creator, C_Type, 0);
  32.         err := ResError;
  33.         end;
  34.  
  35.     if (err = noErr) then
  36.         begin
  37.         err := FSpOpenDF(ExportPtr^.destFSSpecRec, fsWrPerm, refNum);
  38.  
  39.         if (err = noErr) then
  40.             begin
  41.     { Write file format. }
  42.  
  43.             temp := C_ID;
  44.             bytes := 4;
  45.             err := FSWrite(refNum, bytes, @temp); { ID }
  46.             bytes := 4;
  47.             err := FSWrite(refNum, bytes, @ExportPtr^.srcBitsPerPixel);
  48.             bytes := 4;
  49.             err := FSWrite(refNum, bytes, @ExportPtr^.srcBytesPerLine);
  50.             bytes := 4;
  51.             err := FSWrite(refNum, bytes, @ExportPtr^.srcWidth);
  52.             bytes := 4;
  53.             err := FSWrite(refNum, bytes, @ExportPtr^.srcHeight);
  54.             bytes := 4;
  55.             err := FSWrite(refNum, bytes, @ExportPtr^.srcDataSize);
  56.             bytes := 256 * 3 * 2; { color table }
  57.             err := FSWrite(refNum, bytes, ptr(ExportPtr^.srcColorTablePtr));
  58.             bytes := ExportPtr^.srcDataSize;
  59.             err := FSWrite(refNum, bytes, ExportPtr^.srcDataPtr);
  60.  
  61.             dummy := FSClose(refNum);
  62.             end;
  63.         end;
  64.  
  65. { Set the success value to 1 if everything was ok }
  66.     if (err = noErr) then
  67.         ExportPtr^.success := 1;
  68.  
  69.     end;
  70.  
  71. end.